<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>1 Introduction 3.2.11</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" href="../css/main.css" type="text/css" media="screen, print" title="Style" charset="utf-8"/>
    <link rel="stylesheet" href="../css/pdf.css" type="text/css" media="print" title="PDF" charset="utf-8"/>
    <script type="text/javascript">
function addJsClass() {
    var classes = document.body.className.split(" ");
    classes.push("js");
    document.body.className = classes.join(" ");
}
    </script>
</head>

<body class="body" onload="addJsClass();">
<div id="navigation">
    <div class="navTitle">
        
        The Grails Framework
    </div>
    <div class="navLinks">
        <ul>
            <li>
                <div id="nav-summary" onmouseover="toggleNavSummary(false)" onmouseout="toggleNavSummary(true)">
                    <a href="../guide/index.html" class="button">Table of contents</a>

                    <div id="nav-summary-childs" style="display:none;">
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/introduction.html"><strong>1</strong><span>Introduction</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/gettingStarted.html"><strong>2</strong><span>Getting Started</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/upgrading.html"><strong>3</strong><span>Upgrading</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/conf.html"><strong>4</strong><span>Configuration</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/commandLine.html"><strong>5</strong><span>The Command Line</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/profiles.html"><strong>6</strong><span>Application Profiles</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/GORM.html"><strong>7</strong><span>Object Relational Mapping (GORM)</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/theWebLayer.html"><strong>8</strong><span>The Web Layer</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/traits.html"><strong>9</strong><span>Traits</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/webServices.html"><strong>10</strong><span>Web Services</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/async.html"><strong>11</strong><span>Asynchronous Programming</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/validation.html"><strong>12</strong><span>Validation</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/services.html"><strong>13</strong><span>The Service Layer</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/staticTypeCheckingAndCompilation.html"><strong>14</strong><span>Static Type Checking And Compilation</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/testing.html"><strong>15</strong><span>Testing</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/i18n.html"><strong>16</strong><span>Internationalization</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/security.html"><strong>17</strong><span>Security</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/plugins.html"><strong>18</strong><span>Plugins</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/spring.html"><strong>19</strong><span>Grails and Spring</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/hibernate.html"><strong>20</strong><span>Grails and Hibernate</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/scaffolding.html"><strong>21</strong><span>Scaffolding</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/deployment.html"><strong>22</strong><span>Deployment</span></a>
                        </div>
                        
                        <div class="toc-item" style="margin-left:0"><a href="../guide/contributing.html"><strong>23</strong><span>Contributing to Grails</span></a>
                        </div>
                        
                    </div>
                </div>
            </li>
            <li class="separator selected">
                <a id="ref-button" onclick="localToggle(); return false;" href="#">Quick Reference</a>
            </li>
        </ul>
    </div>


</div>

<table id="colset" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td id="col1">
            <div id="main" class="corner-all">

                

                <span id='toggle-col1' class="toggle">(<a href="#" onclick="localToggle(); return false;">Quick Reference</a>)</span>

                
                    <div class="toc-item next-right"><a href="../guide/gettingStarted.html"><strong>2</strong><span>Getting Started</span> >></a></div>
                


                <div class="project">
                    <h1>1 Introduction</h1>

                    <p><strong>Version:</strong> 3.2.11</p>
                </div>

                
                <div id="table-of-content">
                    <h2>Table of Contents</h2>
                    
                    <div class="toc-item" style="margin-left:0px"><a href="#whatsNew"><strong>1.1</strong><span>What's new in Grails 3.2?</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#whatsNewGORM"><strong>1.1.1</strong><span>GORM 6 Suite</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#whatsNewRxJava"><strong>1.1.2</strong><span>RxJava Support</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#whatsNewAngular"><strong>1.1.3</strong><span>Angular Support</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#whatsNewJSONViews"><strong>1.1.4</strong><span>JSON Views 1.1</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#whatsNewCors"><strong>1.1.5</strong><span>CORS Support</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#whatsNewGrailsWrapper"><strong>1.1.6</strong><span>Grails Wrapper</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#dependencyUpgrades"><strong>1.1.7</strong><span>Updated Dependencies</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#otherNovelties"><strong>1.1.8</strong><span>Other Novelties</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:0px"><a href="#whatsNew31"><strong>1.2</strong><span>What's new in Grails 3.1?</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#profileImprovements"><strong>1.2.1</strong><span>Improvements to Grails 3 Profiles</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#webApiAndAngularProfiles"><strong>1.2.2</strong><span>REST API and AngularJS Profiles</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#gorm5"><strong>1.2.3</strong><span>GORM 5 Suite</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#grailsWrapper"><strong>1.2.4</strong><span>Grails Wrapper</span></a>
                    </div>
                    
                    <div class="toc-item" style="margin-left:10px"><a href="#pluginPublishing"><strong>1.2.5</strong><span>Plugin Publishing Plugins</span></a>
                    </div>
                    
                </div>
                

                
<a name="1. Introduction"><!-- Legacy link --></a>
<h1 id="introduction">1 Introduction</h1>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>Java web development as it stands today is dramatically more complicated than it needs to be. Most modern web frameworks in the Java space are over complicated and don&#8217;t embrace the Don&#8217;t Repeat Yourself (DRY) principles.</p>
</div>
<div class="paragraph">
<p>Dynamic frameworks like Rails, Django and TurboGears helped pave the way to a more modern way of thinking about web applications. Grails builds on these concepts and dramatically reduces the complexity of building web applications on the Java platform. What makes it different, however, is that it does so by building on already established Java technologies like Spring and Hibernate.</p>
</div>
<div class="paragraph">
<p>Grails is a full stack framework and attempts to solve as many pieces of the web development puzzle through the core technology and its associated plugins. Included out the box are things like:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>An easy to use Object Relational Mapping (ORM) layer built on <a href="http://www.hibernate.org">Hibernate</a></p>
</li>
<li>
<p>An expressive view technology called Groovy Server Pages (GSP)</p>
</li>
<li>
<p>A controller layer built on <a href="http://www.spring.io">Spring</a> MVC</p>
</li>
<li>
<p>An interactive command line environment and build system based on <a href="http://gradle.org">Gradle</a></p>
</li>
<li>
<p>An embedded <a href="http://tomcat.apache.org">Tomcat</a> container which is configured for on the fly reloading</p>
</li>
<li>
<p>Dependency injection with the inbuilt Spring container</p>
</li>
<li>
<p>Support for internationalization (i18n) built on Spring&#8217;s core MessageSource concept</p>
</li>
<li>
<p>A transactional service layer built on Spring&#8217;s transaction abstraction</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>All of these are made easy to use through the power of the <a href="http://groovy-lang.org">Groovy</a> language and the extensive use of Domain Specific Languages (DSLs)</p>
</div>
<div class="paragraph">
<p>This documentation will take you through getting started with Grails and building web applications with the Grails framework.</p>
</div>

<a name="1.1 What's new in Grails 2.0?"><!-- Legacy link --></a>
<h2 id="whatsNew">1.1 What's new in Grails 3.2?</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>This section covers all the new features introduced in Grails 3.2.</p>
</div>


<h2 id="whatsNewGORM">1.1.1 GORM 6 Suite</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/whatsNewGORM.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>Grails 3.2 comes with GORM 6.0, the biggest release of GORM ever! GORM 6 includes the following new features:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>GORM for Neo4j 3.0 / Bolt Driver support</p>
</li>
<li>
<p>GORM for MongoDB 3.2</p>
</li>
<li>
<p>RxGORM - GORM for RxJava</p>
</li>
<li>
<p>RxGORM for REST built on RxNetty</p>
</li>
<li>
<p>RxGORM for MongoDB Rx Driver</p>
</li>
<li>
<p>Universal Multiple Data Sources Support</p>
</li>
<li>
<p>Multi Tenancy Support</p>
</li>
<li>
<p>Spring Container Free Bootstrapping</p>
</li>
<li>
<p>Improved Unit Testing</p>
</li>
<li>
<p>Unified Configuration API</p>
</li>
<li>
<p>New Standalone Documentation</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>There are so many new features and novelties in GORM that we had to write its own independent <a href="http://gorm.grails.org/6.0.x/whatsNew/manual/index.html">What&#8217;s New Guide</a>!</p>
</div>


<h2 id="whatsNewRxJava">1.1.2 RxJava Support</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/whatsNewRxJava.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>In addition to <a href="http://gorm.grails.org/6.0.x/rx/manual">RxGORM</a>, support for <a href="http://reactivex.io">RxJava</a> has been added to the Grails framework via an <a href="https://grails.org/plugins.html#plugin/rxjava">RxJava plugin</a>.</p>
</div>
<div class="sect3">
<h4 id="_reactive_controllers_with_rxjava">Reactive controllers with RxJava</h4>
<div class="paragraph">
<p>The RxJava plugin allows you to return <code>Observable</code> responses from controllers and integrates seamlessly with RxGORM to make it possible handle requests reactively, in a non-blocking manner. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy"><span class="keyword">def</span> <span class="function">show</span>() {
    <span class="predefined-type">String</span> author = params.author
    <span class="predefined-type">Book</span>.get(params.id)
            .map { <span class="predefined-type">Book</span> book -&gt;
        rx.render <span class="key">view</span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">book</span><span class="delimiter">&quot;</span></span>, <span class="key">model</span>:[<span class="key">book</span>:book, <span class="key">author</span>:author]
    }
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_server_sent_events_with_rxjava">Server Sent Events with RxJava</h4>
<div class="paragraph">
<p>It is now possible to easily issue responses that return <a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events">Server Sent Events</a> with Grails and RxJava:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy"><span class="keyword">def</span> <span class="function">index</span>() {
    rx.stream { Subscriber subscriber -&gt;
       <span class="keyword">for</span>(i <span class="keyword">in</span> (<span class="integer">0</span>..<span class="integer">5</span>)) {
           <span class="keyword">if</span>(i % <span class="integer">2</span> == <span class="integer">0</span>) {
               subscriber.onNext(
                   rx.render(<span class="string"><span class="delimiter">&quot;</span><span class="content">Tick</span><span class="delimiter">&quot;</span></span>)
               )
           }
           <span class="keyword">else</span> {
               subscriber.onNext(
                   rx.render(<span class="string"><span class="delimiter">&quot;</span><span class="content">Tock</span><span class="delimiter">&quot;</span></span>)
               )

           }
           sleep <span class="integer">1000</span>
       }
       subscriber.onCompleted()
   }
}</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
See the <a href="https://github.com/grails-plugins/grails-rxjava/tree/master/examples/server-sent-event-example">sample application</a> for a demonstration of Server Sent Events in action
</td>
</tr>
</table>
</div>
</div>


<h2 id="whatsNewAngular">1.1.3 Angular Support</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/whatsNewAngular.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="sect3">
<h4 id="_angularjs_scaffolding">AngularJS Scaffolding</h4>
<div class="paragraph">
<p>The <code>angularjs</code> profile has been refined and now also includes a new <a href="https://grails.org/plugins.html#plugin/angularjs-scaffolding">AngularJS Scaffolding</a> plugin.</p>
</div>
<div class="paragraph">
<p>The AngularJS scaffolding plugin adds an <code>ng-generate-all</code> command which will generate the necessary AngularJS 1.x client code to perform CRUD operations in conjunction with a Grails 3 backend.</p>
</div>
<div class="paragraph">
<p>Not only does this serve as a useful tool to get up and running quickly, but (like previous versions of scaffolding) it is a great way for developers to learn how to integrate AngularJS and Grails 3.</p>
</div>
</div>
<div class="sect3">
<h4 id="_angular_profile_3_2_1">Angular Profile (3.2.1+)</h4>
<div class="paragraph">
<p>Starting with Grails 3.2.1, the Angular profile is available for use to create applications with Angular 2+. To create a fresh application:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">grails create-app test-ng -profile angular</code></pre>
</div>
</div>
<div class="paragraph">
<p>A multi-project build will be created with a separate project for the client and server applications. To make things easier, the tasks <code>test</code>, <code>integrationTest</code>, and <code>bootRun</code> have been created in the client application to make executing those tasks easier across the whole application.</p>
</div>
<div class="paragraph">
<p>Since Gradle executes tasks synchronously, and the <code>bootRun</code> task will never finish, it is important to execute it in parallel. At the root of the project:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">./gradlew bootRun --parallel</code></pre>
</div>
</div>
<div class="paragraph">
<p>This will start both the client and server side applications simultaneously.</p>
</div>
<div class="paragraph">
<p>For more information on how the new profile works, see the <a href="webServices.html#angularProfile">section in the user guide</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="_profile_and_scaffolding_renamed_3_2_9">Profile and Scaffolding Renamed (3.2.9+)</h4>
<div class="paragraph">
<p>Previously in Grails 3.2.8, the angular profile created applications with Angular 1.x and the angular2 profile created applications with Angular 2.x.</p>
</div>
<div class="paragraph">
<p>Because of the naming guidelines coming from the Angular team, the angular profile was renamed to angularjs. The angular2 profile was renamed to just angular. The scaffolding plugins were also changed in the same manner.</p>
</div>
</div>


<h2 id="whatsNewJSONViews">1.1.4 JSON Views 1.1</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/whatsNewJSONViews.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p><a href="http://views.grails.org/1.1.x">Version 1.1</a> of the JSON Views plugin is included with Grails 3.2&#8217;s "rest-api" profile and includes <a href="http://views.grails.org/1.1.x/#_version_history">a number of new features</a>. Below are some of the highlights:</p>
</div>
<div class="sect3">
<h4 id="_template_inheritance">Template Inheritance</h4>
<div class="paragraph">
<p>It is now possible for a child JSON template to specify a parent template, thus allowing better template composition. For example given the following parent:</p>
</div>
<div class="listingblock">
<div class="title">grails-app/views/_parent.gson</div>
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">model {
    <span class="predefined-type">Object</span> object
}
json {
    hal.links(object)
    version <span class="string"><span class="delimiter">&quot;</span><span class="content">1.0</span><span class="delimiter">&quot;</span></span>
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>A child template can be specified as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">inherits <span class="key">template</span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">parent</span><span class="delimiter">&quot;</span></span>
model {
    Person person
}
json {
    name person.name
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="_global_and_default_templates">Global and Default Templates</h4>
<div class="paragraph">
<p>Global templates can now be created for any GORM custom types. This allows adding support for external libraries such as JodaTime or custom types provided by datastores such as MongoDB (example GeoJSON).</p>
</div>
<div class="paragraph">
<p>A global template is simply another JSON template that is named after the class name. See for example <a href="https://github.com/grails/grails-views/tree/master/json-templates/src/templates/grails/mongodb/geo">the GeoJSON templates</a>.</p>
</div>
<div class="paragraph">
<p>In addition it is now possible to provide a fallback template named <code>/object/_object.gson</code> that is used if no other template is found.</p>
</div>
</div>
<div class="sect3">
<h4 id="_better_hal_support">Better HAL Support</h4>
<div class="paragraph">
<p>The HAL support has been expanded and now includes greater control over <code>_embedded</code> and <code>_links</code>, for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">model {
    <span class="predefined-type">Book</span> book
}
json {
    hal.links(<span class="key">self</span>: book )
    hal.embedded(<span class="key">authors</span>: book.authors)
    hal.inline(book) {
        pages <span class="integer">300</span>
    }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The HAL support has also been improved with support for HAL pagination.</p>
</div>
</div>


<h2 id="whatsNewCors">1.1.5 CORS Support</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/whatsNewCors.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>Starting with Grails 3.2.1, we have added support to configure the CORS support provided in Spring Boot.</p>
</div>
<div class="paragraph">
<p>This feature is disabled by default. Once enabled, the default setting is "wide open". To enable CORS configuration:</p>
</div>
<div class="listingblock">
<div class="title">application.yml</div>
<div class="content">
<pre class="CodeRay highlight"><code data-lang="yaml"><span class="key">grails</span>:
    <span class="key">cors</span>:
        <span class="key">enabled</span>: <span class="string"><span class="content">true</span></span></code></pre>
</div>
</div>
<div class="paragraph">
<p>To get more information on how to tighten down these settings to match your needs, visit the section on <a href="theWebLayer.html#cors">configuring CORS</a>.</p>
</div>


<h2 id="whatsNewGrailsWrapper">1.1.6 Grails Wrapper</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/whatsNewGrailsWrapper.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>The Grails wrapper is back starting with Grails 3.2.3!</p>
</div>
<div class="paragraph">
<p>You can use it the same way you use any Grails command inside a project.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">./grailsw create-controller foo</code></pre>
</div>
</div>


<h2 id="dependencyUpgrades">1.1.7 Updated Dependencies</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/dependencyUpgrades.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>Grails 3.2 ships with the following dependency upgrades:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Hibernate 5.1.1 (now the default version of Hibernate for new applications)</p>
</li>
<li>
<p>Spring Framework 4.3.1</p>
</li>
<li>
<p>Spring Boot 1.4.0</p>
</li>
<li>
<p>Gradle 3.0</p>
</li>
</ul>
</div>


<h2 id="otherNovelties">1.1.8 Other Novelties</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew/otherNovelties.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="sect3">
<h4 id="_new_asciidoc_reference_documentation">New Asciidoc Reference Documentation</h4>
<div class="paragraph">
<p>The Grails user guide has been converted to use <a href="http://asciidoctor.org/">Asciidoctor</a> for publishing, making it easier for users to contribute improvements to the documentation (Just click the "Improve this doc" link on the right!).</p>
</div>
</div>
<div class="sect3">
<h4 id="_new_default_date_data_binding_format">New default date data binding format</h4>
<div class="paragraph">
<p>Dates formatted like "1970-01-01T00:00:00.000Z" will now be successfully parsed by default. The format is used by common JavaScript libraries.</p>
</div>
</div>
<div class="sect3">
<h4 id="_the_run_script_command_from_grails_2_is_back">The run-script command from Grails 2 is back</h4>
<div class="paragraph">
<p>The <code>run-script</code> command makes a return! It is now possible to run Groovy scripts that are wrapped in a Grails context using Grails 3:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">$ grails run-script my-groovy-script.groovy</code></pre>
</div>
</div>
<div class="paragraph">
<p>Refer to the <a href="../ref/Command%20Line/run-script.html">run-script</a> documentation for more information.</p>
</div>
</div>
<div class="sect3">
<h4 id="_commands_a_feature_previously_only_available_in_plugins_are_now_available_to_be_created_in_applications">Commands, a feature previously only available in plugins, are now available to be created in applications</h4>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">$ grails create-command MyCommand</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that commands defined in applications are not executed the same way as commands defined in plugins. See the updated documentation on <a href="../ref/Command%20Line/create-command.html">create-command</a> for details.</p>
</div>
</div>
<div class="sect3">
<h4 id="_rest_profile_refinements">REST Profile Refinements</h4>
<div class="paragraph">
<p>The REST profile has been further refined including more sensible <code>UrlMappings</code> and mime type configuration designed specifically for REST applications.</p>
</div>
</div>
<div class="sect3">
<h4 id="_ability_to_skip_the_bootstrap_process_with_a_system_property">Ability to skip the Bootstrap process with a system property</h4>
<div class="paragraph">
<p>When the Grails runtime is started, it will now execute <code>*Bootstrap.groovy</code> classes conditionally. If the system property <code>grails.bootstrap.skip</code> is set to <code>true</code>, the classes will <em>not</em> be executed for that run.</p>
</div>
</div>
<div class="sect3">
<h4 id="_changes_to_data_binding_with_the_body_of_a_request">Changes to data binding with the body of a request</h4>
<div class="paragraph">
<p>To be more inline with the <a href="https://tools.ietf.org/html/rfc2616#section-4.3">HTTP/1.1</a> specification, request bodies in GET and DELETE requests will be ignored for data binding. The request body will also be ignored if the specified content length is 0.</p>
</div>
</div>
<div class="sect3">
<h4 id="_profile_improvements">Profile improvements</h4>
<div class="paragraph">
<p>It is now possible to specify credentials for repositories used for profile resolution in your <code>settings.groovy</code> file. In addition, there are other new features useful for creating profiles. See the <a href="profiles.html">section on Profiles</a> for the documentation.</p>
</div>
</div>
<div class="sect3">
<h4 id="_java_8_date_support">Java 8 Date Support</h4>
<div class="paragraph">
<p>Support for Java 8 date types has been added via a plugin. The tags formatDate and datePicker have been altered to support the new types. Support has been added to databinding to be able to successfully parse Java 8 dates. To take advantage of this functionality, add the new grails-java8 plugin to your application:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">compile <span class="string"><span class="delimiter">&quot;</span><span class="content">org.grails.plugins:grails-java8</span><span class="delimiter">&quot;</span></span></code></pre>
</div>
</div>
<div class="paragraph">
<p>If you are using hibernate and wish to persist the new date types, you should also add a dependency to <code>hibernate-java8</code> as well:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">compile <span class="string"><span class="delimiter">&quot;</span><span class="content">org.hibernate:hibernate-java8:&lt;your hibernate version here&gt;</span><span class="delimiter">&quot;</span></span></code></pre>
</div>
</div>
</div>


<h2 id="whatsNew31">1.2 What's new in Grails 3.1?</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew31.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>Grails 3.1 includes the following new features.</p>
</div>
<div class="sect3">
<h4 id="_spring_boot_1_3_and_spring_4_2">Spring Boot 1.3 and Spring 4.2</h4>
<div class="paragraph">
<p>Grails 3.1 has been upgraded to Spring Boot 1.3 and Spring 4.2.</p>
</div>
</div>


<h2 id="profileImprovements">1.2.1 Improvements to Grails 3 Profiles</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew31/profileImprovements.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="sect3">
<h4 id="_profile_publishing_and_repositories">Profile Publishing and Repositories</h4>
<div class="paragraph">
<p>The following improvements are available in Grails profiles:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Profiles are now published as regular JAR files to any Maven compatible repository (Artifactory, Nexus etc.).</p>
</li>
<li>
<p>Additional profiles can be created easily with the new <a href="../ref/Command%20Line/create-profile.html">create-profile</a> command.</p>
</li>
<li>
<p>Profiles can now contribute to the generation of the build</p>
</li>
<li>
<p>Profiles can now have one or many features</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For more information see the new <a href="profiles.html">section on Profiles</a> in the user guide.</p>
</div>
</div>


<h2 id="webApiAndAngularProfiles">1.2.2 REST API and AngularJS Profiles</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew31/webApiAndAngularProfiles.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="sect3">
<h4 id="_rest_profile">REST Profile</h4>
<div class="paragraph">
<p>A new profile is available designed for the creation of pure REST applications without a UI.</p>
</div>
<div class="paragraph">
<p>To create a REST application use the <code>rest-api</code> profile as an argument to <a href="../ref/Command%20Line/create-app.html">create-app</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy"><span class="error">$</span> grails create-app myapp --profile=rest-api</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
In earlier milestones this profile was named web-api. The profile has been renamed <code>rest-api</code> which more appropriately describes its purpose.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Then start interactive mode to see the available commands for the profile:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy"><span class="error">$</span> cd myapp
<span class="error">$</span> grails</code></pre>
</div>
</div>
<div class="paragraph">
<p>If you hit TAB you will notice code generation commands specific to the profile including:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>create-domain-resource</code> - Creates a domain class annotated with the <a href="http://docs.grails.org/3.2.11/api/grails/rest/Resource.html">Resource</a> annotation)</p>
</li>
<li>
<p><code>create-restful-controller</code> - Creates a controller that extends <a href="http://docs.grails.org/3.2.11/api/grails/rest/RestfulController.html">RestfulController</a>.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_json_and_markup_views">JSON and Markup Views</h4>
<div class="paragraph">
<p>The REST profile includes the ability to define <a href="http://views.grails.org/latest/">JSON and Markup views</a> and the <code>build.gradle</code> features the ability to compile these views for production use.</p>
</div>
<div class="paragraph">
<p>The REST profile also creates <a href="http://views.grails.org/latest/">JSON views</a> to render the <code>index</code> action and common commands such as <a href="../ref/Command%20Line/generate-views.html">generate-views</a> have been overridden to generate JSON views.</p>
</div>
</div>
<div class="sect3">
<h4 id="_angularjs_profile">AngularJS Profile</h4>
<div class="paragraph">
<p>An initial version of the AngularJS profile is now available, making it easier to create and integrate AngularJS with Grails 3 applications.</p>
</div>
<div class="paragraph">
<p>To create a Grails 3 AngularJS application use the <code>angularjs</code> profile as an argument to <a href="../ref/Command%20Line/create-app.html">create-app</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">$ grails create-app myapp --profile=angularjs</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then start interactive mode to see the available commands for the profile:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">$ cd myapp
$ grails</code></pre>
</div>
</div>
<div class="paragraph">
<p>You will notice new commands such as <code>create-ng-component</code>, <code>create-ng-controller</code> etc. that help you get going creating an AngularJS application.</p>
</div>
<div class="paragraph">
<p>The <code>build.gradle</code> is also pre-configured with the necessary Gradle plugins to integrate AngularJS with Asset Pipeline. The created Angular application can be found in <code>grails-app/assets/javascripts</code>.</p>
</div>
<div class="paragraph">
<p>For more detail on what the Angular profile provides, see the <a href="webServices.html#angularJsProfile">AngularJS Profile</a> section in the documentation</p>
</div>
</div>


<h2 id="gorm5">1.2.3 GORM 5 Suite</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew31/gorm5.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>Grails 3.1 ships with <a href="http://grails.github.io/grails-data-mapping/5.0.x/">GORM 5</a> which is a brand new release of GORM supporting the following technologies:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Hibernate 3, 4 and 5 - for SQL databases GORM for Hibernate now supports the latest Hibernate 5.x release</p>
</li>
<li>
<p>MongoDB 3.x - GORM for MongoDB has been upgraded to the MongoDB 3.x Java driver and supports codec based persistence</p>
</li>
<li>
<p>Neo4j 2.3.x - GORM for Neo4j has been significantly improved and support the latest release of Neo4j</p>
</li>
<li>
<p>Cassandra - GORM for Cassandra supports the latest 2.0.x drivers</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>For more information refer to the new <a href="http://grails.github.io/grails-data-mapping/5.0.x/">GORM 5 website</a>.</p>
</div>


<h2 id="grailsWrapper">1.2.4 Grails Wrapper</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew31/grailsWrapper.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>The Grails wrapper is back starting with Grails 3.1.14!</p>
</div>
<div class="paragraph">
<p>You can use it the same way you use any Grails command inside a project.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="bash">./grailsw create-controller foo</code></pre>
</div>
</div>


<h2 id="pluginPublishing">1.2.5 Plugin Publishing Plugins</h2>

<div class='contribute-btn'>
    <button type='button' class='btn btn-default' onclick='window.location.href="https://github.com/grails/grails-doc/edit/3.2.x/src/en/guide/introduction/whatsNew31/pluginPublishing.adoc"'>
        <i class='fa fa-pencil-square-o'></i> Improve this doc
    </button>
</div>


<div class="paragraph">
<p>New Gradle plugins are available to simplify publishing of plugins and profiles.</p>
</div>
<div class="paragraph">
<p>To utilize the plugin apply the <code>org.grails.grails-plugin-publish</code> plugin (after any existing Grails plugins for Gradle):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">apply <span class="key">plugin</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">org.grails.grails-plugin</span><span class="delimiter">&quot;</span></span>
apply <span class="key">plugin</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">org.grails.grails-plugin-publish</span><span class="delimiter">&quot;</span></span></code></pre>
</div>
</div>
<div class="paragraph">
<p>For a profile the <code>grails-profile-publish</code> plugin can be used instead:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">apply <span class="key">plugin</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">org.grails.grails-profile</span><span class="delimiter">&quot;</span></span>
apply <span class="key">plugin</span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">org.grails.grails-profile-publish</span><span class="delimiter">&quot;</span></span></code></pre>
</div>
</div>
<div class="paragraph">
<p>Then configure the plugin. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">grailsPublish {
    user = <span class="string"><span class="delimiter">'</span><span class="content">user</span><span class="delimiter">'</span></span>
    key = <span class="string"><span class="delimiter">'</span><span class="content">key</span><span class="delimiter">'</span></span>
    githubSlug = <span class="string"><span class="delimiter">'</span><span class="content">foo/bar</span><span class="delimiter">'</span></span>
    license {
        name = <span class="string"><span class="delimiter">'</span><span class="content">Apache-2.0</span><span class="delimiter">'</span></span>
    }
    title = <span class="string"><span class="delimiter">&quot;</span><span class="content">My Plugin Title</span><span class="delimiter">&quot;</span></span>
    desc = <span class="string"><span class="delimiter">&quot;</span><span class="content">My Plugin Description</span><span class="delimiter">&quot;</span></span>
    developers = [<span class="key">johndoe</span>:<span class="string"><span class="delimiter">&quot;</span><span class="content">John Doe</span><span class="delimiter">&quot;</span></span>]
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>user</code> and <code>key</code> are your Bintray credentials. With this done you can continue to use <code>bintrayUpload</code> to publish your plugin. In addition, if you wish to update the Grails plugin portal, you simply need to configure your <code>grails.org</code> credentials:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">grailsPublish {
    ...
    portalUser = <span class="string"><span class="delimiter">&quot;</span><span class="content">...</span><span class="delimiter">&quot;</span></span>
    portalPassword = <span class="string"><span class="delimiter">&quot;</span><span class="content">...</span><span class="delimiter">&quot;</span></span>
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then call <code>notifyPluginPortal</code> to update the <a href="http://grails.org/plugins.html">Grails.org Plugins website</a>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="groovy">gradle notifyPluginPortal</code></pre>
</div>
</div>


                <div style="clear:both;margin-top:15px;"></div>
                
                    <div class="toc-item next-right"><a href="../guide/gettingStarted.html"><strong>2</strong><span>Getting Started</span> >></a></div>
                
                <div style="clear:both"></div>
            </div>
        </td>
        <td id="col2">
            <div class="local clearfix">
                <div class="local-title">
                    <a href="../guide/index.html" target="mainFrame">Quick Reference</a>
                    <span class="toggle">(<a href="#" onclick="localToggle(); return false;">hide</a>)</span>
                </div>
                <div class="menu">
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Command Line</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Command%20Line/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/bug-report.html">bug-report</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/clean.html">clean</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/compile.html">compile</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/console.html">console</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-app.html">create-app</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-command.html">create-command</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-controller.html">create-controller</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-domain-class.html">create-domain-class</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-functional-test.html">create-functional-test</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-hibernate-cfg-xml.html">create-hibernate-cfg-xml</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-integration-test.html">create-integration-test</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-interceptor.html">create-interceptor</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-plugin.html">create-plugin</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-profile.html">create-profile</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-script.html">create-script</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-service.html">create-service</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-taglib.html">create-taglib</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/create-unit-test.html">create-unit-test</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/dependency-report.html">dependency-report</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/docs.html">docs</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/generate-all.html">generate-all</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/generate-controller.html">generate-controller</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/generate-views.html">generate-views</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/help.html">help</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/install-templates.html">install-templates</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/list-plugins.html">list-plugins</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/list-profiles.html">list-profiles</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/package-plugin.html">package-plugin</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/package.html">package</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/plugin-info.html">plugin-info</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/profile-info.html">profile-info</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/run-app.html">run-app</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/run-command.html">run-command</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/run-script.html">run-script</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/schema-export.html">schema-export</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/shell.html">shell</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/stats.html">stats</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/stop-app.html">stop-app</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/test-app.html">test-app</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Command%20Line/war.html">war</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Constraints</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Constraints/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Constraints/attributes.html">attributes</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/bindable.html">bindable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/blank.html">blank</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/creditCard.html">creditCard</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/email.html">email</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/inList.html">inList</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/matches.html">matches</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/max.html">max</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/maxSize.html">maxSize</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/min.html">min</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/minSize.html">minSize</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/notEqual.html">notEqual</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/nullable.html">nullable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/range.html">range</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/scale.html">scale</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/size.html">size</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/unique.html">unique</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/url.html">url</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/validator.html">validator</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Constraints/widget.html">widget</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Controllers</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Controllers/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Controllers/actionName.html">actionName</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/allowedMethods.html">allowedMethods</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/bindData.html">bindData</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/chain.html">chain</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/controllerName.html">controllerName</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/defaultAction.html">defaultAction</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/errors.html">errors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/flash.html">flash</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/forward.html">forward</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/grailsApplication.html">grailsApplication</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/hasErrors.html">hasErrors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/namespace.html">namespace</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/params.html">params</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/redirect.html">redirect</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/render.html">render</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/request.html">request</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/respond.html">respond</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/response.html">response</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/responseFormats.html">responseFormats</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/scope.html">scope</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/servletContext.html">servletContext</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/session.html">session</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/withForm.html">withForm</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Controllers/withFormat.html">withFormat</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Database Mapping</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Database%20Mapping/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/autoImport.html">autoImport</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/autoTimestamp.html">autoTimestamp</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/batchSize.html">batchSize</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/cache.html">cache</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/cascade.html">cascade</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/column.html">column</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/comment.html">comment</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/discriminator.html">discriminator</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/dynamicInsert.html">dynamicInsert</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/dynamicUpdate.html">dynamicUpdate</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/fetch.html">fetch</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/id.html">id</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/ignoreNotFound.html">ignoreNotFound</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/indexColumn.html">indexColumn</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/insertable.html">insertable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/joinTable.html">joinTable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/lazy.html">lazy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/order.html">order</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/sort.html">sort</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/table.html">table</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/type.html">type</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/updateable.html">updateable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Database%20Mapping/version.html">version</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Domain Classes</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Domain%20Classes/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/addTo.html">addTo</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/attach.html">attach</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/belongsTo.html">belongsTo</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/clearErrors.html">clearErrors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/constraints.html">constraints</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/count.html">count</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/countBy.html">countBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/createCriteria.html">createCriteria</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/delete.html">delete</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/discard.html">discard</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/embedded.html">embedded</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/errors.html">errors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/executeQuery.html">executeQuery</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/executeUpdate.html">executeUpdate</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/exists.html">exists</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/fetchMode.html">fetchMode</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/find.html">find</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findAll.html">findAll</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findAllBy.html">findAllBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findAllWhere.html">findAllWhere</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findBy.html">findBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findOrCreateBy.html">findOrCreateBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findOrCreateWhere.html">findOrCreateWhere</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findOrSaveBy.html">findOrSaveBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findOrSaveWhere.html">findOrSaveWhere</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/findWhere.html">findWhere</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/first.html">first</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/get.html">get</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/getAll.html">getAll</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/getDirtyPropertyNames.html">getDirtyPropertyNames</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/getPersistentValue.html">getPersistentValue</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/hasErrors.html">hasErrors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/hasMany.html">hasMany</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/hasOne.html">hasOne</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/ident.html">ident</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/instanceOf.html">instanceOf</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/isAttached.html">isAttached</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/isDirty.html">isDirty</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/last.html">last</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/list.html">list</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/listOrderBy.html">listOrderBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/load.html">load</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/lock.html">lock</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/mapWith.html">mapWith</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/mappedBy.html">mappedBy</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/mapping.html">mapping</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/merge.html">merge</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/namedQueries.html">namedQueries</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/properties.html">properties</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/read.html">read</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/refresh.html">refresh</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/removeFrom.html">removeFrom</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/save.html">save</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/transients.html">transients</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/validate.html">validate</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/where.html">where</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/whereAny.html">whereAny</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/withCriteria.html">withCriteria</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/withNewSession.html">withNewSession</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/withSession.html">withSession</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Domain%20Classes/withTransaction.html">withTransaction</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Plug-ins</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Plug-ins/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/URL%20mappings.html">URL mappings</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/codecs.html">codecs</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/controllers.html">controllers</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/core.html">core</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/dataSource.html">dataSource</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/domainClasses.html">domainClasses</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/hibernate.html">hibernate</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/i18n.html">i18n</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/logging.html">logging</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/scaffolding.html">scaffolding</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/services.html">services</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Plug-ins/servlets.html">servlets</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Services</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Services/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Services/scope.html">scope</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Services/transactional.html">transactional</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Servlet API</h1><div class="menu-sub">
                        
                            
                            <div class="menu-item"><a href="../ref/Servlet%20API/request.html">request</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Servlet%20API/response.html">response</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Servlet%20API/servletContext.html">servletContext</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Servlet%20API/session.html">session</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Tag Libraries</h1><div class="menu-sub">
                        
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/Usage.html">Usage</a></div>
                            
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/actionName.html">actionName</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/controllerName.html">controllerName</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/flash.html">flash</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/pageScope.html">pageScope</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/params.html">params</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/request.html">request</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/response.html">response</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/servletContext.html">servletContext</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tag%20Libraries/session.html">session</a>
                            </div>
                            
                            </div>
                    </div>
                    
                    <div class="menu-block"><h1 class="menu-title" onclick="toggleRef(this.parentNode.childNodes[1])">Tags</h1><div class="menu-sub">
                        
                            
                            <div class="menu-item"><a href="../ref/Tags/actionSubmit.html">actionSubmit</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/actionSubmitImage.html">actionSubmitImage</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/applyLayout.html">applyLayout</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/checkBox.html">checkBox</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/collect.html">collect</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/cookie.html">cookie</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/country.html">country</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/countrySelect.html">countrySelect</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/createLink.html">createLink</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/createLinkTo.html">createLinkTo</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/currencySelect.html">currencySelect</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/datePicker.html">datePicker</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/each.html">each</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/eachError.html">eachError</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/else.html">else</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/elseif.html">elseif</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/external.html">external</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/field.html">field</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/fieldError.html">fieldError</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/fieldValue.html">fieldValue</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/findAll.html">findAll</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/form.html">form</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/formatBoolean.html">formatBoolean</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/formatDate.html">formatDate</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/formatNumber.html">formatNumber</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/grep.html">grep</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/hasErrors.html">hasErrors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/header.html">header</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/hiddenField.html">hiddenField</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/if.html">if</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/img.html">img</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/include.html">include</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/isAvailable.html">isAvailable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/isNotAvailable.html">isNotAvailable</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/javascript.html">javascript</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/join.html">join</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/layoutBody.html">layoutBody</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/layoutHead.html">layoutHead</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/layoutTitle.html">layoutTitle</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/link.html">link</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/localeSelect.html">localeSelect</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/message.html">message</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/meta.html">meta</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/pageProperty.html">pageProperty</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/paginate.html">paginate</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/passwordField.html">passwordField</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/radio.html">radio</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/radioGroup.html">radioGroup</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/render.html">render</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/renderErrors.html">renderErrors</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/resource.html">resource</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/select.html">select</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/set.html">set</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/sortableColumn.html">sortableColumn</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/submitButton.html">submitButton</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/textArea.html">textArea</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/textField.html">textField</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/timeZoneSelect.html">timeZoneSelect</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/unless.html">unless</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/uploadForm.html">uploadForm</a>
                            </div>
                            
                            <div class="menu-item"><a href="../ref/Tags/while.html">while</a>
                            </div>
                            
                            </div>
                    </div>
                    
                </div>
            </div>
        </td>
    </tr>
</table>

<div id="footer">
    Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.
    
</div>

<script type="text/javascript" src="../js/docs.js"></script>

</body>
</html>
